package com.baijia.authentication.principal;
/**
 * @title CredentialsToPrincipalResolver
 * @desc 将credential提供信息，解析为principal；但一般会查数据或者ldap或者其他数据源，填充除username之外的信息 
 * @author caoliang
 * @date 2015年12月5日
 * @version 1.0
 */
public interface CredentialsToPrincipalResolver {

    /**
     * 从Credentials读信息，转译为principal，
     * principal至少要有一个id，id一般为用户名
     * 
     * @param 登录凭证 
     * @return 身份信息
     */
    Principal resolvePrincipal(Credentials credentials);

    /**
     * 是否支持转译当前Credentials
     * 
     * @param 登录凭证
     * @return 是否支持
     */
    boolean supports(Credentials credentials);
}
